跳到主要内容

1.1-linux

Create by fall on 08 Jun 2021 Recently revised in 24 July 2023

Linux 系统

linux 操作系统包括

  • redhat(开源、收费)
  • ubuntu(以桌面应用为主的 linux 操作系统)
  • CentOS(使用 redhat 企业级中免费的开源代码,

半企业级 linux,去掉了注册商标以及程序包中注册商标以及 binary 方面的变化。对于想白嫖红帽企业级 linux 来说,centOS 值得一试

发行版本

Debian

志愿者们维护了这一套系统

  • Debian 12,代号“bookworm”
  • Debian 11,代号“bullseye”
  • Debian 10,代号“buster”(2024-06-15 end-of-life)
  • Debian 9,代号“stretch”(2020-7-18 end-of-life)

Alpine

Alpine 是一个独立发行版本,相比较 Debian 操作系统来说 Alpine 更加轻巧,而通过 Docker 镜像搭建微服务倡导的就是一个“轻量级”概念,所以很多语言、应用也都发布了 Alpine 版本的 Docker 基础镜像。

Ubuntu

Ubuntu 基于 Debian,专注于质量,企业安全

  • 16.04 LTS,代号"Xenial Xerus"
  • 18.04 LTS,代号"Bionic Beaver",简称 "bionic",官方提供基本支持到 2023-05-31
  • Ubuntu 20.04 LTS ,代号"Focal Fossa",简称 Focal,官方提供基本支持到 2025-05-29
  • Ubuntu 22.04 LTS,代号"Jammy Jellyfish",简称 Jammy,官方提供基本支持到 2027-06-01
  • Ubuntu 24.04 LTS,代号"Noble Numbat",简称 Noble,2024-04-25 发布第一个版本,官方提供基本支持到 2029-05-31

查看操作系统信息

ldd --version
# 或者
lsb_release -a
# 如果不能运行,需要通过下面的方式安装依赖
apt-get install lsb-release

文件系统

所有的应用程序都需要 存储检索 信息。进程运行时,它能够在自己的存储空间内存储一定量的信息。存储容量受虚拟地址空间大小的限制。

硬链接

Hard Link 通过索引节点进行链接,一个文件可以有多个硬链接,最后一个硬链接删除,释放文件内存。

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

符号链接

符号连接(Symbolic Link)本质是一个文件,文件指向了另一个文件。

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

目录详解

  • /bin:bin 是 Binary 的缩写,存放最经常使用命令
  • /boot:存放启动 Linux 的时候使用方的一些核心文件,包括一些链接文件以及镜像
  • /dev:设备(Device)的缩写,存放 linux 的外部设备
  • /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录(如果你更改了该目录下的某个文件可能会导致系统不能启动)
  • /home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found:这个目录一般情况是空的,当系统非法关机之后,会生成一些文件。
  • /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
  • /root:该目录为系统管理员,也称为超级权限着的用户主目录。
  • /sbin:super User 这里存放着系统管理员的系统管理程序
  • /seliinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的
  • /srv:该目录存放一些服务启动之后需要提取的数据
  • /sys:这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs。sysfs 文件系统集成了下面 3 种文件系统的信息。该文件系统是内核设备树的一个直观反映。 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
    • 针对进程信息的 proc 文件系统、
    • 针对设备的 devfs 文件系统
    • 针对伪终端的 devpts 文件系统。
  • /tmp:这个目录存放一些临时文件
  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows下的 program files 目录
    • /usr/bin:系统用户使用的应用程序
    • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
    • /usr/src:内核源代码放置目录
  • /var:这个目录中存放着在不断增加的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

参考文章

作者文章名称
同福编程Docker的几种精简版本Buster、Alpine、Stretch比较
极致Linux内核Linux简介以及常用命令(目录详解)